<!--
 * @Description: 第二十四章（兄弟组件传参和Bus） mitt
 * @Author: IA ia@kepro.space
 * @Date: 2025-02-18 17:30:07
-->
<template>
  <div>
    <h1>我是B组件</h1>
    <div>
      <el-button type="danger" @click="offAllMitt">关闭所有监听</el-button>
    </div>
  </div>
</template>
<script setup lang="ts">
import { ref, getCurrentInstance } from 'vue'

const instance = getCurrentInstance()

instance?.proxy?.$Bus.on('chuancan1', (value) => {
  console.log('单一传值：', value, '===============> B')
})

// on的第一个参数变成*号就会监听所有
instance?.proxy?.$Bus.on('*', (eventName, value) => {
  console.log('事件名称：', eventName, ' 事件值：', value, '===============> B')
})

const Bus = (value: any) => {
  console.log('通过Bus函数传值： ', value)
}

instance?.proxy?.$Bus.on('chuancan2', Bus)

instance?.proxy?.$Bus.on('chuancan3', (value) => {
  console.log('删除监听：', value, '===============> B')
})

instance?.proxy?.$Bus.off('chuancan3')

const offAllMitt = () => {
  instance?.proxy?.$Bus.all.clear()
}
</script>
<style scoped></style>
